﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Retete.Models;

namespace Retete.ViewModels
{
    public class ReceptieViewModel
    {
        private decimal? totalValoare;
        private decimal? totalValoareTVA;
        private decimal? totalValoareCuTVA;

        public Receptie Receptie { get; set; }
        public List<ReceptieProdus> Produse { get; set; }

        public string ProdusNouInventarCod { get; set; }
        public string ProdusNouInventarNume { get; set; }
        public string ProdusNouInventarCategorie { get; set; }
        public string ProdusNouInventarUnitateMasura { get; set; }

        public string CodUltimulProdus { get; set; }
        public string ProdusNouCod { get; set; }
        public string ProdusNouNume { get; set; }
        public decimal ProdusNouPret { get; set; }
        public decimal ProdusNouCantitate { get; set; }
        public int ProdusNouID { get; set; }
        public decimal ProdusNouPretVanzare { get; set; }
        public decimal ProdusNouValoareTVA { get; set; }
        public decimal ProdusNouGramaj { get; set; }
        public bool ProdusNouTVA { get; set; }

        public bool AdaugaProdusInventar { get; set; }
        public bool FinalizareAdaugareProdusInventar { get; set; }
        public bool FocusProdusNou { get; set; }
        public int IDProdusSters { get; set; }
        public bool ExportExcel { get; set; }

        public decimal TotalValoare 
        {
            get 
            {
                if (totalValoare.HasValue == true) return totalValoare.Value;
                else if (Produse != null) return Math.Round(Produse.Sum(element => element.Valoare), 2);
                else return 0;
            }
            set { totalValoare = value; }
        }
        public decimal TotalValoareTVA 
        {
            get 
            {
                if (totalValoareTVA.HasValue == true) return totalValoareTVA.Value;
                else if (Produse != null) return Math.Round(Produse.Sum(element => element.ValoareTVA), 2);
                else return 0;
            }
            set { totalValoareTVA = value; }
        }
        public decimal TotalValoareCuTVA 
        {
            get 
            {
                if (totalValoareCuTVA.HasValue == true) return totalValoareCuTVA.Value;
                else if (Produse != null) return Math.Round(Produse.Sum(element => element.ValoareCuTVA), 2);
                else return 0;
            }
            set { totalValoareCuTVA = value; }
        }

        public ReceptieViewModel(Receptie setReceptie)
        {
            Receptie = setReceptie;
            Produse = setReceptie.Produse.ToList();
            IDProdusSters = -1;
            ExportExcel = false;
            ProdusNouTVA = true;
        }
        public ReceptieViewModel() { }
    }
}